#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/8/16 4:21
# @Author  : Yuyun
# @File    : 万能字符拼写.py
# @IDE     : PyCharm


"""
题目描述：
有一个字符串数组words和一个字符串chars。
假如可以用chars中的字母拼写出words中的某个“单词”（字符串），那么我们就认为你掌握了这个单词。
words的字符仅由a—z英文小写字母组成。例如：abc
chars由a-z英文小写字母和“？”组成。
其中英文问号”？”表示万能字符，能够在拼写时当做任意一个英文字母。例如：“？”可以当做"a"等字母。
注意：每次拼写时，chars中的每个字母和万能字符都只能使用一次。
输出词汇表words中你掌握的所有单词的个数。没有掌握任何单词，则输出0。

输入描述：
第1行输入数组words的个数，记为N。
从第2行开始到第N+1行依次输入数组words的每个字符串元素。
第N+2行输入字符串chars。

输出描述：
输出一个整数，表示词汇表words中你掌握的单词个数。

注意：
1 <= words length <=100
1 <= words[i].length, chars.length <= 100
所有字符串中都仅包含小写英文字母、英文问号
示例1
输入：
4
cat
bt
hat
tree
atach??
输出：
说明：3
可以拼写字符串“cat”、“bt”和"hat"


4
cat
bt
hat
tre
atach??

"""


# def count_words_spellable(words, chars):
#     chars_set = set(chars)
#     question_mark = 1 if '?' in chars_set else 0
#     count = 0
#     for word in words:
#         word_set = set(word)
#         temp_count = 0      #临时统计在word中、不再chars中的字符个数
#         for c in word_set:
#             if c not in chars_set:
#                 temp_count += 1
#         if temp_count == 0:     #word中字符均在chars中可以找到，则word可以被拼写
#             count += 1
#             continue
#         else:       #word中字符存在chars中无法找到的情况
#             if question_mark == temp_count:     #若仅1个字符找不到，且chars中存在"?"，则word可以被拼写
#                 count += 1
#                 continue
#     return count

#方法②——列表+字典
def count_spellable_words(words, chars):
    # 统计chars中每个字母的出现次数，以及'？'的数量
    char_count = {'?': 0}
    for c in chars:
        if c in char_count:
            char_count[c] += 1
        else:
            char_count[c] = 1
    question_marks = char_count.pop('?') if '?' in char_count else 0
    # 遍历words数组，验证每个单词
    count = 0
    for word in words:
        # 临时字典，用于跟踪当前单词的字符需求
        temp_count = {'?': 0}
        spellable = True
        # 检查单词中的每个字符
        for c in word:
            if c in temp_count:
                temp_count[c] += 1
            elif c in char_count:
                temp_count[c] = 1
                if char_count[c] == 0:  # 如果该字符在chars中已用完
                    spellable = False
                    break
                char_count[c] -= 1
            else:
                # 如果字符不在chars中，且没有足够的'?'
                if question_marks == 0:
                    spellable = False
                    break
                temp_count['?'] += 1
                question_marks -= 1
        if spellable:
            count += 1
            # 恢复char_count和question_marks状态，以便下一个单词的验证
        for c in temp_count:
            if c in char_count:
                char_count[c] += temp_count[c]
        question_marks += temp_count.get('?', 0)
    return count



# 输入处理
n = int(input())
words = [input().strip() for _ in range(n)]
chars = input()
# 调用函数并输出结果
print(count_spellable_words(words, chars))